function ABC_GuardarForma(strForma, intTipoGuardado, intTipoListado) {
  var strSerializado = "XGuard=1&" + $("#" + strForma + " :input").serialize();
  $.post(
    "index.php", 
    strSerializado,
    function(data) {
      if(data.substr(0, 6) == 'error:') {
        // Se encontro un error y no se guardo nada
        alert(data);
      } else if(data.substr(0, 5) == 'data:') {
        // Se guardo un elemento ya existente
        if(intTipoGuardado == 1) {
          // Es alertar mandando un flash
          if(intTipoListado == 1) {
            // El guardado se hará a una lista, por lo que solo se alertará en el TR de la forma
            // Checar la animacion despues
            $("#" + strForma)
              .addClass("ColumnasAlternas2", 1000, function() {
                $(this).removeClass("ColumnasAlternas2", 1000);
              })
            ;
          } else {
            // Es un DIV de boton
            alert("Elemento '" + data.substr(5) + "' guardado correctamente");
          }
        } else if(intTipoGuardado == 5) {
          document.location.reload();
        } else {
          alert("Elemento '" + data.substr(5) + "' guardado correctamente");
        }
      } else {
        // Se guardo un elemento nuevo: agregar
        if(intTipoGuardado == 1) {
          // Es alertar mandando un flash
          if(intTipoListado == 1) {
            // El guardado se hará a una lista, por lo que solo se alertará en el TR de la forma
            $("#" + strForma)
              .parent()
              .parent()
              .append(data)
              .find("tr:last")
              .addClass("ColumnasAlternas2", 1000, function() {
                $(this).removeClass("ColumnasAlternas2", 1000)
              })
            ;
          } else {
            alert("Falta agregar el codigo que agrega el boton en la pagina cuando es un elemento nuevo, por AJAX, en modo LISTADO DE BOTONES");
            alert("Elemento nuevo creado exitosamente");
          }
        } else {
          alert("Elemento nuevo creado exitosamente");
        }
      }
    }
  );
}

function ABCCambiarSelectHijo(strIdSelectPadre, strIdSelectHijo, arrDatos) {
//  alert(strIdSelectPadre + ' - ' + strIdSelectHijo + ' - ' + arrDatos);
  var idSeleccionado = document.getElementById(strIdSelectPadre).options[document.getElementById(strIdSelectPadre).options.selectedIndex].value;
  var i;
  var opcionesSelect = '';
  
  for(i in arrDatos[idSeleccionado]) {
    opcionesSelect += "<option value='" + i + "'>" + arrDatos[idSeleccionado][i] + "</option>";
  }
  
  document.getElementById(strIdSelectHijo).innerHTML = opcionesSelect;
}

function ABCMostrarTodasColumnas() {
  var i;
  for(i = 1; i < 100; i++) {
    $(".Columna" + i).show();
  }
}

function ABCOcultarColumna(i) {
  $(".Columna" + i).hide();
}

function FiltroOrdenarColumna(strIndiceColumna, strTipoOrden, strNombreForma) {
  document.getElementById("FormaOrden" + strNombreForma).value = strIndiceColumna + "," + strTipoOrden;
  document.getElementById("Forma" + strNombreForma).submit();
}

function FiltroInfoColumna(strIndiceColumna, strNombreForma) {
  var strSerializado = "XInfo=" + strIndiceColumna + "&" + $("#Forma" + strNombreForma + " :input").serialize();
  
  $.post(
    "index.php", 
    strSerializado,
    function(data) {
      if(data.substr(0, 6) == 'error:') {
        // Se encontro un error y no se guardo nada
        alert(data);
      } else {
        document.getElementById("DialogoInfo" + strNombreForma).innerHTML = data;
        AbrirDialogo("DialogoInfo" + strNombreForma, "Informacion de columna" + strIndiceColumna, "800px");
      }
    }
  );
}